package com.ruyuan.commodity.api;

import com.ruyuan.commodity.domain.FullUpdateIndexRequest;
import com.ruyuan.commodity.domain.IndexRequest;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;

/**
 * 商品索引相关的对外接口
 */
@RequestMapping("/goods/index/client")
public interface GoodsIndexClient {


    /**
     * 将某个商品加入索引
     * @param request 新增商品索引的请求对象
     * @return 处理结果
     */
    @PostMapping("/addIndex")
    Boolean addIndex(@RequestBody IndexRequest request);

    /**
     * 更新某个商品的索引
     * @param request 更新商品索引的请求对象
     * @return 处理结果
     * @throws IOException 异常信息
     */
    @PutMapping("/updateIndex")
    Boolean updateIndex(@RequestBody IndexRequest request) throws IOException;


    /**
     * 删除给定的商品索引
     * @param request 删除商品索引的请求对象
     * @return 处理结果
     * @throws IOException 异常信息
     */
    @DeleteMapping("/deleteIndex")
    Boolean deleteIndex(@RequestBody IndexRequest request) throws IOException;

    /**
     * 初始化索引 全量更新索引
     * @param fullUpdateIndexRequest 全量更新索引的请求对象
     * @return 是否是生成成功
     * @throws IOException 异常信息
     */
    @PostMapping("/fullUpdateIndex")
    Boolean addAll(@RequestBody FullUpdateIndexRequest fullUpdateIndexRequest) throws IOException;

}
